Виртуальный реальный режим
Для обратной совместимости 32-разрядная система Windows 9x использует третий режим в процессоре — виртуальный реальный режим. Виртуальный реальный, по существу, является режимом выполнения 16-разрядной среды (реальный режим), которое реализовано внутри 32-разрядного защищенного режима (т. е. виртуально, а не реально). Выполняя команды в окне подсказки DOS внутри Windows 95/98, вы создаете виртуальный сеанс реального режима. Поскольку защищенный режим является подлинно многозадачным, фактически можно выполнять несколько сеансов реального режима, причем в каждом сеансе собственное программное обеспечение работает на виртуальном компьютере. И все эти приложения могут выполняться одновременно, даже во время работы других 32-разрядных программ.
Обратите внимание, что любая программа, выполняющаяся в виртуальном окне реального режима, может обращаться только к памяти объемом до 1 Мбайт, причем для каждой такой программы это будет первый и единственный мегабайт памяти в системе. Другими словами, если вы выполняете приложение DOS в виртуальном реальном окне, ему будет доступна память только объемом до 640 Кбайт. Так происходит потому, что имеется только 1 Мбайт общей оперативной памяти в 16-разрядной среде, а верхние 384 Кбайт зарезервированы для системы. Виртуальное реальное окно полностью имитирует среду процессора 8088, и, если не учитывать быстродействие, программное обеспечение будет выполняться так, как оно выполнялось первым PC в реальном режиме. Каждая виртуальная машина получает собственный 1 Мбайт адресного пространства и собственный экземпляр реальных аппаратных подпрограмм управления аппаратурой (базовую систему ввода-вывода), причем при этом эмулируются все регистры и возможности реального режима.
Виртуальный реальный режим используется при выполнении программ в окне DOS, а также при выполнении 16-разрядных программ, написанных для DOS или Windows 3.x, в Windows 95/98. При запуске приложения DOS операционная система Windows 9x создает виртуальную машину DOS, на которой это приложение может выполняться.
Важно отметить, что все процессоры Intel (а также Intel-совместимые AMD и Cyrix) при включении питания начинают работать в реальном режиме. При загрузке 32-разрядная операционная система автоматически переключает процессор в 32-разрядный режим и управляет им в этом режиме.
Некоторые приложения DOS и Windows 3.x ведут себя непредусмотренным образом, т. е. делают вещи, которые не поддерживаются даже в виртуальном реальном режиме. Диагностическое программное обеспечение — прекрасный тому пример: оно не будет корректно работать в окне реального режима (виртуального реального) под управлением Windows 95/98 или NT. Чтобы на Pentium II запустить такое программное обеспечение в первоначальном упрощенном режиме, необходимо прервать процесс начальной загрузки системы и просто загрузить DOS. Это можно выполнить в Windows 95/98, нажимая клавишу <F8>, когда на экране появляется подсказка Starting Windows.... Затем, когда появится загрузочное меню, в нем нужно выбрать команду загрузки простой 16-разрядной операционной системы реального режима DOS. Лучше всего выбрать Safe mode command prompt, если вы собираетесь использовать диагностические процедуры (обычно не выполняемые в защищенном режиме), которые должны быть запущены с минимумом драйверов и другого программного обеспечения.